/* * Gui_Options.java * * Created on December 7, 2006, 12:51 PM */ package gui; import aoc.Options; import sam.fileprocessing.Folders; import sam.utilities.xml.myXML; import sam.systemtools.Key; import java.io.File; import java.io.FileWriter; import java.io.PrintWriter; import java.io.FileReader; import java.io.BufferedReader; import java.awt.Color; import java.text.NumberFormat; import javax.swing.text.NumberFormatter; /** * * @author samfentress */ public class Gui_Options extends javax.swing.JFrame { boolean anyMoveForward; Key moveForwardButton; Key leftButton; Key rightButton; int fontSize; Color backColor; Color fontColor; int state; NumberFormat integerFormat; NumberFormatter textFormatter; /** Creates new form Gui_Options */ public Gui_Options() { integerFormat = NumberFormat.getIntegerInstance(); textFormatter = new NumberFormatter(integerFormat); textFormatter.setAllowsInvalid(false); initComponents(); setLocationRelativeTo(null); loadData(); setVisible(true); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; buttonGroup1 = new javax.swing.ButtonGroup(); fontColorChooser = new javax.swing.JColorChooser(); backColorChooser = new javax.swing.JColorChooser(); jPanel1 = new javax.swing.JPanel(); jLabel2 = new javax.swing.JLabel(); SelectBackColor = new javax.swing.JButton(); jLabel3 = new javax.swing.JLabel(); FontSize = new javax.swing.JFormattedTextField(textFormatter); jLabel4 = new javax.swing.JLabel(); SelectFontColor = new javax.swing.JButton(); jPanel2 = new javax.swing.JPanel(); jLabel5 = new javax.swing.JLabel(); anyRadio = new javax.swing.JRadioButton(); singleRadio = new javax.swing.JRadioButton(); scrBtnPanel = new javax.swing.JPanel(); scrBtnTxt = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); lftBtnPanel = new javax.swing.JPanel(); lftBtnTxt = new javax.swing.JLabel(); rgtBtnPanel = new javax.swing.JPanel(); rgtBtnTxt = new javax.swing.JLabel(); Cancel = new javax.swing.JButton(); Ok = new javax.swing.JButton(); Reset = new javax.swing.JButton(); getContentPane().setLayout(new java.awt.GridBagLayout()); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Options"); addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) { formKeyPressed(evt); } }); jPanel1.setLayout(new java.awt.GridBagLayout()); jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Appearance")); jPanel1.setMinimumSize(new java.awt.Dimension(250, 130)); jPanel1.setPreferredSize(new java.awt.Dimension(250, 130)); jLabel2.setText("Background color:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 4, 3, 12); jPanel1.add(jLabel2, gridBagConstraints); SelectBackColor.setText("Select"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(3, 0, 3, 4); jPanel1.add(SelectBackColor, gridBagConstraints); jLabel3.setText("Font size:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 4, 3, 12); jPanel1.add(jLabel3, gridBagConstraints); FontSize.setText("13"); FontSize.setMaximumSize(new java.awt.Dimension(25, 22)); FontSize.setMinimumSize(new java.awt.Dimension(25, 22)); FontSize.setPreferredSize(new java.awt.Dimension(25, 22)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(3, 0, 3, 4); jPanel1.add(FontSize, gridBagConstraints); jLabel4.setText("Font color:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 12); jPanel1.add(jLabel4, gridBagConstraints); SelectFontColor.setText("Select"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 4); jPanel1.add(SelectFontColor, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.gridwidth = 3; gridBagConstraints.insets = new java.awt.Insets(0, 20, 10, 20); getContentPane().add(jPanel1, gridBagConstraints); jPanel2.setLayout(new java.awt.GridBagLayout()); jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Command")); jPanel2.setMinimumSize(new java.awt.Dimension(250, 150)); jPanel2.setPreferredSize(new java.awt.Dimension(250, 150)); jLabel5.setText("Next screen button:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 4, 3, 19); jPanel2.add(jLabel5, gridBagConstraints); buttonGroup1.add(anyRadio); anyRadio.setSelected(true); anyRadio.setText("Any (default)"); anyRadio.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); anyRadio.setMargin(new java.awt.Insets(0, 0, 0, 0)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 2, 9); jPanel2.add(anyRadio, gridBagConstraints); buttonGroup1.add(singleRadio); singleRadio.setText("Single button:"); singleRadio.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); singleRadio.setMargin(new java.awt.Insets(0, 0, 0, 0)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 5, 9); jPanel2.add(singleRadio, gridBagConstraints); scrBtnPanel.setLayout(new java.awt.GridBagLayout()); scrBtnPanel.setBackground(new java.awt.Color(255, 255, 255)); scrBtnPanel.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true)); scrBtnPanel.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { scrBtnPanelMouseClicked(evt); } public void mouseExited(java.awt.event.MouseEvent evt) { scrBtnPanelMouseExited(evt); } public void mouseEntered(java.awt.event.MouseEvent evt) { scrBtnPanelMouseEntered(evt); } }); scrBtnTxt.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); scrBtnTxt.setText("Space"); scrBtnTxt.setMaximumSize(new java.awt.Dimension(60, 18)); scrBtnTxt.setMinimumSize(new java.awt.Dimension(60, 18)); scrBtnTxt.setPreferredSize(new java.awt.Dimension(60, 18)); scrBtnPanel.add(scrBtnTxt, new java.awt.GridBagConstraints()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 4); jPanel2.add(scrBtnPanel, gridBagConstraints); jLabel6.setText("Left option button:"); jLabel6.setMaximumSize(new java.awt.Dimension(128, 16)); jLabel6.setMinimumSize(new java.awt.Dimension(128, 16)); jLabel6.setPreferredSize(new java.awt.Dimension(128, 16)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 4, 2, 4); jPanel2.add(jLabel6, gridBagConstraints); jLabel7.setText("Right option button:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 4, 2, 7); jPanel2.add(jLabel7, gridBagConstraints); lftBtnPanel.setBackground(new java.awt.Color(255, 255, 255)); lftBtnPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); lftBtnPanel.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { lftBtnPanelMouseClicked(evt); } public void mouseExited(java.awt.event.MouseEvent evt) { lftBtnPanelMouseExited(evt); } public void mouseEntered(java.awt.event.MouseEvent evt) { lftBtnPanelMouseEntered(evt); } }); lftBtnTxt.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); lftBtnTxt.setText("L. Arrow"); lftBtnTxt.setMaximumSize(new java.awt.Dimension(60, 18)); lftBtnTxt.setMinimumSize(new java.awt.Dimension(60, 18)); lftBtnTxt.setPreferredSize(new java.awt.Dimension(60, 18)); org.jdesktop.layout.GroupLayout lftBtnPanelLayout = new org.jdesktop.layout.GroupLayout(lftBtnPanel); lftBtnPanel.setLayout(lftBtnPanelLayout); lftBtnPanelLayout.setHorizontalGroup( lftBtnPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(lftBtnTxt, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) ); lftBtnPanelLayout.setVerticalGroup( lftBtnPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(lftBtnTxt, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) ); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 2, 4); jPanel2.add(lftBtnPanel, gridBagConstraints); rgtBtnPanel.setBackground(new java.awt.Color(255, 255, 255)); rgtBtnPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); rgtBtnPanel.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { rgtBtnPanelMouseClicked(evt); } public void mouseExited(java.awt.event.MouseEvent evt) { rgtBtnPanelMouseExited(evt); } public void mouseEntered(java.awt.event.MouseEvent evt) { rgtBtnPanelMouseEntered(evt); } }); rgtBtnTxt.setBackground(new java.awt.Color(204, 204, 204)); rgtBtnTxt.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); rgtBtnTxt.setText("R. Arrow"); rgtBtnTxt.setMaximumSize(new java.awt.Dimension(60, 18)); rgtBtnTxt.setMinimumSize(new java.awt.Dimension(60, 18)); rgtBtnTxt.setPreferredSize(new java.awt.Dimension(60, 18)); org.jdesktop.layout.GroupLayout rgtBtnPanelLayout = new org.jdesktop.layout.GroupLayout(rgtBtnPanel); rgtBtnPanel.setLayout(rgtBtnPanelLayout); rgtBtnPanelLayout.setHorizontalGroup( rgtBtnPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(rgtBtnTxt, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) ); rgtBtnPanelLayout.setVerticalGroup( rgtBtnPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(rgtBtnTxt, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) ); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 5; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 2, 4); jPanel2.add(rgtBtnPanel, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.gridwidth = 3; gridBagConstraints.insets = new java.awt.Insets(20, 20, 10, 20); getContentPane().add(jPanel2, gridBagConstraints); Cancel.setText("Cancel"); Cancel.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { CancelMouseClicked(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; gridBagConstraints.insets = new java.awt.Insets(5, 0, 10, 0); getContentPane().add(Cancel, gridBagConstraints); Ok.setText("Ok"); Ok.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { OkMouseClicked(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(5, 0, 10, 20); getContentPane().add(Ok, gridBagConstraints); Reset.setText("Reset"); Reset.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { ResetMouseClicked(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.insets = new java.awt.Insets(5, 45, 10, 0); getContentPane().add(Reset, gridBagConstraints); pack(); }// </editor-fold>//GEN-END:initComponents private void ResetMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ResetMouseClicked Options.resetDefaults(); loadData(); }//GEN-LAST:event_ResetMouseClicked private void CancelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_CancelMouseClicked this.dispose(); }//GEN-LAST:event_CancelMouseClicked private void OkMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_OkMouseClicked boolean anyKeyPress = anyRadio.isSelected(); fontSize = Integer.parseInt(FontSize.getText()); fontColor = Color.BLACK; backColor = Color.WHITE; Options options = new Options(anyKeyPress, moveForwardButton, leftButton, rightButton, fontSize, fontColor, backColor); this.dispose(); }//GEN-LAST:event_OkMouseClicked private void formKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_formKeyPressed int keyCode = evt.getKeyCode(); int keyLoc = evt.getKeyLocation(); char keyChar = evt.getKeyChar(); Key key = new Key(keyCode,keyLoc,keyChar); String rep = key.getString(); switch (state){ case 1: scrBtnTxt.setText(rep); moveForwardButton = key; singleRadio.setSelected(true); break; case 2: lftBtnTxt.setText(rep); leftButton = key; break; case 3: rgtBtnTxt.setText(rep); rightButton = key; break; default: return; } }//GEN-LAST:event_formKeyPressed private void rgtBtnPanelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rgtBtnPanelMouseClicked rgtBtnTxt.setText("?"); state = 3; this.requestFocus(); }//GEN-LAST:event_rgtBtnPanelMouseClicked private void lftBtnPanelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lftBtnPanelMouseClicked lftBtnTxt.setText("?"); state = 2; this.requestFocus(); }//GEN-LAST:event_lftBtnPanelMouseClicked private void scrBtnPanelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_scrBtnPanelMouseClicked scrBtnTxt.setText("?"); state = 1; this.requestFocus(); }//GEN-LAST:event_scrBtnPanelMouseClicked private void rgtBtnPanelMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rgtBtnPanelMouseExited rgtBtnPanel.setBackground(new java.awt.Color(255, 255, 255)); }//GEN-LAST:event_rgtBtnPanelMouseExited private void rgtBtnPanelMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rgtBtnPanelMouseEntered rgtBtnPanel.setBackground(new java.awt.Color(252, 243, 194)); }//GEN-LAST:event_rgtBtnPanelMouseEntered private void lftBtnPanelMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lftBtnPanelMouseExited lftBtnPanel.setBackground(new java.awt.Color(255, 255, 255)); }//GEN-LAST:event_lftBtnPanelMouseExited private void lftBtnPanelMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lftBtnPanelMouseEntered lftBtnPanel.setBackground(new java.awt.Color(252, 243, 194)); }//GEN-LAST:event_lftBtnPanelMouseEntered private void scrBtnPanelMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_scrBtnPanelMouseExited scrBtnPanel.setBackground(new java.awt.Color(255, 255, 255)); }//GEN-LAST:event_scrBtnPanelMouseExited private void scrBtnPanelMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_scrBtnPanelMouseEntered scrBtnPanel.setBackground(new java.awt.Color(252, 243, 194)); }//GEN-LAST:event_scrBtnPanelMouseEntered private void loadData(){ Options options = new Options(); anyMoveForward = options.isAnyKeyAhead(); moveForwardButton = options.getKeyAhead(); leftButton = options.getLeftKey(); rightButton = options.getRightKey(); fontSize = options.getFontSize(); fontColor = options.getFontColor(); backColor = options.getBackColor(); anyRadio.setSelected(anyMoveForward); singleRadio.setSelected(!anyMoveForward); scrBtnTxt.setText(moveForwardButton.getString()); lftBtnTxt.setText(leftButton.getString()); rgtBtnTxt.setText(rightButton.getString()); FontSize.setText(""+fontSize); } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Gui_Options().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton Cancel; private javax.swing.JFormattedTextField FontSize; private javax.swing.JButton Ok; private javax.swing.JButton Reset; private javax.swing.JButton SelectBackColor; private javax.swing.JButton SelectFontColor; private javax.swing.JRadioButton anyRadio; private javax.swing.JColorChooser backColorChooser; private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JColorChooser fontColorChooser; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel lftBtnPanel; private javax.swing.JLabel lftBtnTxt; private javax.swing.JPanel rgtBtnPanel; private javax.swing.JLabel rgtBtnTxt; private javax.swing.JPanel scrBtnPanel; private javax.swing.JLabel scrBtnTxt; private javax.swing.JRadioButton singleRadio; // End of variables declaration//GEN-END:variables }